1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.value; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import core.stdc.config; 34 35 extern (C): 36 37 alias _Anonymous_0 PurpleType; 38 alias _Anonymous_1 PurpleSubType; 39 alias _Anonymous_2 PurpleValue; 40 41 enum _Anonymous_0 42 { 43 PURPLE_TYPE_UNKNOWN = 0, 44 PURPLE_TYPE_SUBTYPE = 1, 45 PURPLE_TYPE_CHAR = 2, 46 PURPLE_TYPE_UCHAR = 3, 47 PURPLE_TYPE_BOOLEAN = 4, 48 PURPLE_TYPE_SHORT = 5, 49 PURPLE_TYPE_USHORT = 6, 50 PURPLE_TYPE_INT = 7, 51 PURPLE_TYPE_UINT = 8, 52 PURPLE_TYPE_LONG = 9, 53 PURPLE_TYPE_ULONG = 10, 54 PURPLE_TYPE_INT64 = 11, 55 PURPLE_TYPE_UINT64 = 12, 56 PURPLE_TYPE_STRING = 13, 57 PURPLE_TYPE_OBJECT = 14, 58 PURPLE_TYPE_POINTER = 15, 59 PURPLE_TYPE_ENUM = 16, 60 PURPLE_TYPE_BOXED = 17 61 } 62 63 enum _Anonymous_1 64 { 65 PURPLE_SUBTYPE_UNKNOWN = 0, 66 PURPLE_SUBTYPE_ACCOUNT = 1, 67 PURPLE_SUBTYPE_BLIST = 2, 68 PURPLE_SUBTYPE_BLIST_BUDDY = 3, 69 PURPLE_SUBTYPE_BLIST_GROUP = 4, 70 PURPLE_SUBTYPE_BLIST_CHAT = 5, 71 PURPLE_SUBTYPE_BUDDY_ICON = 6, 72 PURPLE_SUBTYPE_CONNECTION = 7, 73 PURPLE_SUBTYPE_CONVERSATION = 8, 74 PURPLE_SUBTYPE_PLUGIN = 9, 75 PURPLE_SUBTYPE_BLIST_NODE = 10, 76 PURPLE_SUBTYPE_CIPHER = 11, 77 PURPLE_SUBTYPE_STATUS = 12, 78 PURPLE_SUBTYPE_LOG = 13, 79 PURPLE_SUBTYPE_XFER = 14, 80 PURPLE_SUBTYPE_SAVEDSTATUS = 15, 81 PURPLE_SUBTYPE_XMLNODE = 16, 82 PURPLE_SUBTYPE_USERINFO = 17, 83 PURPLE_SUBTYPE_STORED_IMAGE = 18, 84 PURPLE_SUBTYPE_CERTIFICATEPOOL = 19, 85 PURPLE_SUBTYPE_CHATBUDDY = 20 86 } 87 88 struct _Anonymous_2 89 { 90 PurpleType type; 91 ushort flags; 92 union 93 { 94 char char_data; 95 ubyte uchar_data; 96 gboolean boolean_data; 97 short short_data; 98 ushort ushort_data; 99 int int_data; 100 uint uint_data; 101 c_long long_data; 102 c_ulong ulong_data; 103 gint64 int64_data; 104 guint64 uint64_data; 105 char* string_data; 106 void* object_data; 107 void* pointer_data; 108 int enum_data; 109 void* boxed_data; 110 } 111 union 112 { 113 uint subtype; 114 char* specific_type; 115 } 116 } 117 118 119 version(Derelict_Link_Static) 120 { 121 extern( C ) nothrow 122 { 123 PurpleValue* purple_value_new(PurpleType type, ...); 124 PurpleValue* purple_value_new_outgoing(PurpleType type, ...); 125 void purple_value_destroy(PurpleValue* value); 126 PurpleValue* purple_value_dup(const(PurpleValue)* value); 127 PurpleType purple_value_get_type(const(PurpleValue)* value); 128 uint purple_value_get_subtype(const(PurpleValue)* value); 129 const(char)* purple_value_get_specific_type(const(PurpleValue)* value); 130 gboolean purple_value_is_outgoing(const(PurpleValue)* value); 131 void purple_value_set_char(PurpleValue* value, char data); 132 void purple_value_set_uchar(PurpleValue* value, ubyte data); 133 void purple_value_set_boolean(PurpleValue* value, gboolean data); 134 void purple_value_set_short(PurpleValue* value, short data); 135 void purple_value_set_ushort(PurpleValue* value, ushort data); 136 void purple_value_set_int(PurpleValue* value, int data); 137 void purple_value_set_uint(PurpleValue* value, uint data); 138 void purple_value_set_long(PurpleValue* value, c_long data); 139 void purple_value_set_ulong(PurpleValue* value, c_ulong data); 140 void purple_value_set_int64(PurpleValue* value, gint64 data); 141 void purple_value_set_uint64(PurpleValue* value, guint64 data); 142 void purple_value_set_string(PurpleValue* value, const(char)* data); 143 void purple_value_set_object(PurpleValue* value, void* data); 144 void purple_value_set_pointer(PurpleValue* value, void* data); 145 void purple_value_set_enum(PurpleValue* value, int data); 146 void purple_value_set_boxed(PurpleValue* value, void* data); 147 char purple_value_get_char(const(PurpleValue)* value); 148 ubyte purple_value_get_uchar(const(PurpleValue)* value); 149 gboolean purple_value_get_boolean(const(PurpleValue)* value); 150 short purple_value_get_short(const(PurpleValue)* value); 151 ushort purple_value_get_ushort(const(PurpleValue)* value); 152 int purple_value_get_int(const(PurpleValue)* value); 153 uint purple_value_get_uint(const(PurpleValue)* value); 154 c_long purple_value_get_long(const(PurpleValue)* value); 155 c_ulong purple_value_get_ulong(const(PurpleValue)* value); 156 gint64 purple_value_get_int64(const(PurpleValue)* value); 157 guint64 purple_value_get_uint64(const(PurpleValue)* value); 158 const(char)* purple_value_get_string(const(PurpleValue)* value); 159 void* purple_value_get_object(const(PurpleValue)* value); 160 void* purple_value_get_pointer(const(PurpleValue)* value); 161 int purple_value_get_enum(const(PurpleValue)* value); 162 void* purple_value_get_boxed(const(PurpleValue)* value); 163 } 164 } 165 else 166 { 167 extern( C ) nothrow 168 { 169 alias da_purple_value_new = PurpleValue* function(PurpleType type, ...); 170 alias da_purple_value_new_outgoing = PurpleValue* function(PurpleType type, ...); 171 alias da_purple_value_destroy = void function(PurpleValue* value); 172 alias da_purple_value_dup = PurpleValue* function(const(PurpleValue)* value); 173 alias da_purple_value_get_type = PurpleType function(const(PurpleValue)* value); 174 alias da_purple_value_get_subtype = uint function(const(PurpleValue)* value); 175 alias da_purple_value_get_specific_type = const(char)* function(const(PurpleValue)* value); 176 alias da_purple_value_is_outgoing = gboolean function(const(PurpleValue)* value); 177 alias da_purple_value_set_char = void function(PurpleValue* value, char data); 178 alias da_purple_value_set_uchar = void function(PurpleValue* value, ubyte data); 179 alias da_purple_value_set_boolean = void function(PurpleValue* value, gboolean data); 180 alias da_purple_value_set_short = void function(PurpleValue* value, short data); 181 alias da_purple_value_set_ushort = void function(PurpleValue* value, ushort data); 182 alias da_purple_value_set_int = void function(PurpleValue* value, int data); 183 alias da_purple_value_set_uint = void function(PurpleValue* value, uint data); 184 alias da_purple_value_set_long = void function(PurpleValue* value, c_long data); 185 alias da_purple_value_set_ulong = void function(PurpleValue* value, c_ulong data); 186 alias da_purple_value_set_int64 = void function(PurpleValue* value, gint64 data); 187 alias da_purple_value_set_uint64 = void function(PurpleValue* value, guint64 data); 188 alias da_purple_value_set_string = void function(PurpleValue* value, const(char)* data); 189 alias da_purple_value_set_object = void function(PurpleValue* value, void* data); 190 alias da_purple_value_set_pointer = void function(PurpleValue* value, void* data); 191 alias da_purple_value_set_enum = void function(PurpleValue* value, int data); 192 alias da_purple_value_set_boxed = void function(PurpleValue* value, void* data); 193 alias da_purple_value_get_char = char function(const(PurpleValue)* value); 194 alias da_purple_value_get_uchar = ubyte function(const(PurpleValue)* value); 195 alias da_purple_value_get_boolean = gboolean function(const(PurpleValue)* value); 196 alias da_purple_value_get_short = short function(const(PurpleValue)* value); 197 alias da_purple_value_get_ushort = ushort function(const(PurpleValue)* value); 198 alias da_purple_value_get_int = int function(const(PurpleValue)* value); 199 alias da_purple_value_get_uint = uint function(const(PurpleValue)* value); 200 alias da_purple_value_get_long = c_long function(const(PurpleValue)* value); 201 alias da_purple_value_get_ulong = c_ulong function(const(PurpleValue)* value); 202 alias da_purple_value_get_int64 = gint64 function(const(PurpleValue)* value); 203 alias da_purple_value_get_uint64 = guint64 function(const(PurpleValue)* value); 204 alias da_purple_value_get_string = const(char)* function(const(PurpleValue)* value); 205 alias da_purple_value_get_object = void* function(const(PurpleValue)* value); 206 alias da_purple_value_get_pointer = void* function(const(PurpleValue)* value); 207 alias da_purple_value_get_enum = int function(const(PurpleValue)* value); 208 alias da_purple_value_get_boxed = void* function(const(PurpleValue)* value); 209 } 210 211 __gshared 212 { 213 da_purple_value_new purple_value_new; 214 da_purple_value_new_outgoing purple_value_new_outgoing; 215 da_purple_value_destroy purple_value_destroy; 216 da_purple_value_dup purple_value_dup; 217 da_purple_value_get_type purple_value_get_type; 218 da_purple_value_get_subtype purple_value_get_subtype; 219 da_purple_value_get_specific_type purple_value_get_specific_type; 220 da_purple_value_is_outgoing purple_value_is_outgoing; 221 da_purple_value_set_char purple_value_set_char; 222 da_purple_value_set_uchar purple_value_set_uchar; 223 da_purple_value_set_boolean purple_value_set_boolean; 224 da_purple_value_set_short purple_value_set_short; 225 da_purple_value_set_ushort purple_value_set_ushort; 226 da_purple_value_set_int purple_value_set_int; 227 da_purple_value_set_uint purple_value_set_uint; 228 da_purple_value_set_long purple_value_set_long; 229 da_purple_value_set_ulong purple_value_set_ulong; 230 da_purple_value_set_int64 purple_value_set_int64; 231 da_purple_value_set_uint64 purple_value_set_uint64; 232 da_purple_value_set_string purple_value_set_string; 233 da_purple_value_set_object purple_value_set_object; 234 da_purple_value_set_pointer purple_value_set_pointer; 235 da_purple_value_set_enum purple_value_set_enum; 236 da_purple_value_set_boxed purple_value_set_boxed; 237 da_purple_value_get_char purple_value_get_char; 238 da_purple_value_get_uchar purple_value_get_uchar; 239 da_purple_value_get_boolean purple_value_get_boolean; 240 da_purple_value_get_short purple_value_get_short; 241 da_purple_value_get_ushort purple_value_get_ushort; 242 da_purple_value_get_int purple_value_get_int; 243 da_purple_value_get_uint purple_value_get_uint; 244 da_purple_value_get_long purple_value_get_long; 245 da_purple_value_get_ulong purple_value_get_ulong; 246 da_purple_value_get_int64 purple_value_get_int64; 247 da_purple_value_get_uint64 purple_value_get_uint64; 248 da_purple_value_get_string purple_value_get_string; 249 da_purple_value_get_object purple_value_get_object; 250 da_purple_value_get_pointer purple_value_get_pointer; 251 da_purple_value_get_enum purple_value_get_enum; 252 da_purple_value_get_boxed purple_value_get_boxed; 253 } 254 }